User-Based Monitoring and Control

ABSTRACT

Novel tools and techniques to give a customer greater visibility into network performance and/or utilization, particularly with respect to the customer&#39;s broadband connection to a provider&#39;s access network (and/or the Internet more generally). Some tools can track the amount of bandwidth assigned to each class of service on a customer&#39;s broadband connection, and/or the bandwidth provided to each of the devices on the customer&#39;s premises network. These values can be used as inputs to a state machine that governs the use of the broadband connection.

CROSS-REFERENCES TO RELATED APPLICATIONS

The present disclosure may be related to the following commonly assignedapplications/patents:

This application claims the benefit, under 35 U.S.C. §119(e), from thefollowing co-pending applications, the entire disclosure of each ofwhich is hereby incorporated by reference, as if set forth in full inthis document, for all purposes: provisional U.S. Patent Application No.61/416,600, filed Nov. 23, 2010, by Michael K. Bugenhagen and titled“Line Performance Metrics Customer Service Point”; provisional U.S.Patent Application No. 61/429,866 filed Jan. 5, 2011, by Michael K.Bugenhagen and titled “Line Performance Metrics Customer Service Point”;provisional U.S. Patent Application No. 61/435,056 filed Jan. 21, 2011,by Michael K. Bugenhagen and titled “Access Control”; and provisionalU.S. Patent Application No. 61/481,282 filed May 2, 2011, by Michael K.Bugenhagen and titled “Communications Path State Machine.”

The respective disclosures of these applications/patents areincorporated herein by reference in their entirety for all purposes.

COPYRIGHT STATEMENT

A portion of the disclosure of this patent document contains materialthat is subject to copyright protection. The copyright owner has noobjection to the facsimile reproduction by anyone of the patent documentor the patent disclosure as it appears in the Patent and TrademarkOffice patent file or records, but otherwise reserves all copyrightrights whatsoever.

FIELD

The present disclosure relates, in general, to computer networks, andmore particularly, to tools and techniques for providing customers of anInternet service provider with enhanced monitoring and control overtheir Internet connections.

BACKGROUND

Broadband Internet access has become nearly ubiquitous in mostindustrialized countries. Broadband providers employ a variety oftechnologies, including without limitation digital subscriber line(“xDSL”) technologies, cable more (e.g., “DOCSIS”) technologies,wireless broadband technologies, and the like. In most cases, broadbandaccess is offered using a tiered structure, in which the subscriber(referred to herein as a “customer”) receives a certain allocatedbandwidth in return for a given fee (such as a monthly flat fee).

As customer applications have grown in both scope and sophistication,the requirements imposed on broadband access have grown. For example,many voice over Internet protocol (“VoIP”) telephony applicationsrequires threshold levels of throughput and/or latency to provideacceptable performance. Similarly, video on demand applications and/ornetwork games impose requirements on throughput and/or latency. Notably,different applications often will impose different requirements forthroughput and latency, respectively. For instance, a video on demandmight not require particularly low network latency but might requirerelatively high throughput. Conversely, a network game might not requireparticularly high throughput but might require relatively low latency.VoIP telephony might require relatively constant (although notparticularly high) throughput and relatively low latency.

To address these different needs, providers, in many cases, haveimplemented quality of service (“QoS”) features into the broadbandaccess they provide. One type of QoS feature commonly implemented is thedistinction between multiple classes of service to provide trafficprioritization between different types of network traffic received bythe access network from a customer premises. Currently, however,providers lack adequate facilities to provide customer feedbackregarding network performance and utilization, even though the customermight know the capacity it has agreed to purchase from the provider. Forexample, if a customer purchases generic Internet access for amultiple-computer home network, neither the customer nor any individualcomputer attached to the home network has any ide of the amount ofcomposite network traffic between the customer's Internet Service andthe access network. Moreover, when multiple classes of service areprovided to the customer premises, the customer is provided with little(or no) feedback on how those classes of service affect the capacity ofthe customer's broadband connection.

Further, most or all of the traffic on customer's broadband connectionis typically Internet protocol (“IP”) traffic, and all such trafficshares the customer's purchased bandwidth. Given that IP protocols aregenerally designed to share the available bandwidth and ‘adjust” to eachother, when a congestion event occurs all the traffic using that sameclass of service, or a lower class, experiences congestion. In otherwords, there is no concept of “busy” or in use status when it comes toIP protocols today. The fact that no single customer device sees all thecomposite traffic flow makes this a very difficult problem for thecustomer or provider to address.

Thus, there is a need for improved visibility into a customer'sutilization of a provider's access network (and the customer's broadbandconnection thereto).

BRIEF SUMMARY

Certain embodiments, therefore, provide tools and techniques to give acustomer greater visibility into network performance and/or utilization,particularly with respect to the customer's broadband connection to aprovider's access network (and/or the Internet more generally). Merelyby way of example, some embodiments can track the amount of bandwidth(capacity) assigned to each class of service on a customer's broadbandconnection, and/or the bandwidth available to each of the devices on thecustomer's premises network. These values can be used as inputs to astate machine that governs the use of the broadband connection.

Other embodiments might track the utilized throughput in each class ofservice (or overall) through the broadband connection and/or to eachcustomer device. Similarly, some embodiments might track the utilizedstate at a residential gateway and/or various points in the accessnetwork and serve as a signaling point for customer applications (orcustomers themselves) to determine the line state of their connectionand/or devices. In some cases, for example, an embodiment might providean API for applications to access the signaling point. In other cases,an embodiment might employ a user interface to allow the customerhimself or herself to view the line state.

Merely by way of example, a signaling point might track throughput ateither end of the access network, and/or at the residential gateway andone or more customer devices. The signaling point might provide alarmsfor packet loss conditions and/or busy indicators, which can serve as a“busy signal” for the customer and/or any applications, to let theapplication/customer know whether there is sufficient bandwidthavailable to start another network session or if the customer's WiFiconnection has degraded (or been consumed) to a point where it willexperience congestion. Customer applications might be configured tocommunicate with the signaling point to obtain network performanceand/or utilization information. This functionality can enablenear-real-time utilization and/performance reporting, along with visualfeedback, on network conditions (including packet loss conditions) withrespect to the customer's broadband connection and/or premises network,either overall or for particular classes of service.

In some cases, a signaling point might be implemented at a residentialgateway and/or a network interface device. Such devices can include,without limitation, broadband modems, interfaces between the customer'spremises network and the access network, and/or the like. In othercases, a signaling point might be located in the access network itself,and/or it might be configured to communicate with a customer'sresidential gateway, network interface device, and/or any customerdevices on the customer premises network.

The tools provided by various embodiments include, without limitation,methods, systems, and/or software products. Merely by way of example, amethod might comprise one or more procedures, any or all of which areexecuted by a computer system. Correspondingly, an embodiment mightprovide a computer system configured with instructions to perform one ormore procedures in accordance with methods provided by various otherembodiments. Similarly, a computer program might comprise a set ofinstructions that are executable by a computer system (and/or aprocessor therein) to perform such operations. In many cases, suchsoftware programs are encoded on physical, tangible and/ornon-transitory computer readable media (such as, to name but a fewexamples, optical media, magnetic media, and/or the like).

For example, one set of embodiments provide customer service points thatcan provide customers with monitoring and control over network settings.An exemplary customer service point might comprise a first communicationinterface, a second communication interface, and/or one or moreprocessors in communication with the first and second communicationinterfaces. The customer service point might further comprise a computerreadable medium in communication with the one or more processors. Thecomputer readable medium, in an aspect, might have encoded thereon a setof instructions executable by the computer system to perform one or moreoperations.

In an exemplary embodiment, the set of instructions might compriseinstructions for communicating with the Internet via the firstcommunication interface, and/or instructions for communicating with thecustomer device via the second communication interface. The set ofinstructions can also include instructions for maintaining a class ofservice state for a connection between the customer device and theInternet, instructions for receiving, from the customer, configurationinformation for configuring the class of service state, and/orinstructions for modifying the class of service state in response toreceiving the configuration information. In some cases, the set ofinstructions further comprises instructions for determining one or morenetwork performance statistics pertaining to network performance betweenthe customer device and at least one other network point, and/orinstructions for providing, to the customer, the one or more networkperformance statistics.

A method, in accordance with another set of embodiments, might comprisemaintaining, at a customer service point, a class of service state for aconnection between a customer device and the Internet. In some cases,the customer service point might comprise a processor, a firstcommunication interface, and a second communication interface; thecustomer device might be in communication with the first communicationinterface and the Internet might be in communication with the secondcommunication interface. The method might further comprise receiving,from the customer, configuration information for configuring the classof service state, and/or modifying the class of service state inresponse to receiving the configuration information.

An apparatus, in accordance with yet another set of embodiments, mightcomprise a computer readable medium having encoded thereon a set ofinstructions for causing a customer service point to perform one or moreoperations. In an aspect, the customer service point might comprise aprocessor, a first communication interface, and/or a secondcommunication interface. The customer service point might maintain aclass of service state between a connection between a customer device incommunication with the first communication interface and the Internet incommunication with the second communication interface. The set ofinstructions might be executable by the processor, and/or might compriseinstructions for determining one or more network performance statisticspertaining to network performance between the customer device and atleast one other network point. The set of instructions might furthercomprise instructions for providing, to the customer, the one or morenetwork performance statistics.

BRIEF DESCRIPTION OF THE DRAWINGS

A further understanding of the nature and advantages of particularembodiments may be realized by reference to the remaining portions ofthe specification and the drawings, in which like reference numerals areused to refer to similar components. In some instances, a sub-label isassociated with a reference numeral to denote one of multiple similarcomponents. When reference is made to a reference numeral withoutspecification to an existing sub-label, it is intended to refer to allsuch multiple similar components.

FIG. 1 is a block diagram illustrating a system for providing user-basedmonitoring and control of a broadband connection, in accordance withvarious embodiments.

FIG. 2 is a process flow diagram illustrating a method of providinguser-based monitoring and control of a broadband connection, inaccordance with various embodiments.

FIG. 3 is an exemplary screen display illustrating a user interface forproviding user-based monitoring and control of a broadband connection,in accordance with various embodiments.

FIG. 4 is a generalized schematic diagram illustrating a computersystem, in accordance with various embodiments.

DETAILED DESCRIPTION OF CERTAIN EMBODIMENTS

While various aspects and features of certain embodiments have beensummarized above, the following detailed description illustrates a fewexemplary embodiments in further detail to enable one of skill in theart to practice such embodiments. The described examples are providedfor illustrative purposes and are not intended to limit the scope of theinvention.

In the following description, for the purposes of explanation, numerousspecific details are set forth in order to provide a thoroughunderstanding of the described embodiments. It will be apparent to oneskilled in the art, however, that other embodiments of the present maybe practiced without some of these specific details. In other instances,certain structures and devices are shown in block diagram form. Severalembodiments are described herein, and while various features areascribed to different embodiments, it should be appreciated that thefeatures described with respect to one embodiment may be incorporatedwith other embodiments as well. By the same token, however, no singlefeature or features of any described embodiment should be consideredessential to every embodiment of the invention, as other embodiments ofthe invention may omit such features.

Unless otherwise indicated, all numbers used herein to expressquantities, dimensions, and so forth used should be understood as beingmodified in all instances by the term “about.” In this application, theuse of the singular includes the plural unless specifically statedotherwise, and use of the terms “and” and “or” means “and/or” unlessotherwise indicated. Moreover, the use of the term “including,” as wellas other forms, such as “includes” and “included,” should be considerednon-exclusive. Also, terms such as “element” or “component” encompassboth elements and components comprising one unit and elements andcomponents that comprise more than one unit, unless specifically statedotherwise.

One set of embodiments provides tools and techniques to give a customergreater visibility into network performance and/or utilization,particularly with respect to the customer's broadband connection to aprovider's access network (and/or the Internet more generally). Certainof these tools and techniques can allow a user to view statistics (inreal-time or near-real-time) about the utilization and/or performance ofthe customer's broadband connection (which can include, withoutlimitation, the connection between the customer's premises and theproviders access network, the access network itself, and/or theconnection between the access network and the Internet. In this way, acustomer not only can control various aspects of the connection, but canalso see where any throughput bottlenecks might be occurring (if, forexample, the customer is experiencing subpar download speeds from theInternet).

It should be understood that utilization changes over a time period,therefore some form mathematical utilization state representation isused to characterize the usage, and or usage change of the resourcepool. Typically this is accomplished through the use of averaging andsliding window observation method, also assumed are the statistical andmathematical characterizations such as average, maximum, minimum, andchange indicators such as the first and second derivate of the measuresfrom period to period. The frequency in which utilization is reported ismathematically a function of how long the utilization is observed, andit should also be understood that multiple windows of observation mayoccur in parallel to provide short duration, and longer durationutilization information in a parallel manner.

In addition to tracking network performance, some embodiments allow acustomer active control over various aspects of the customer's broadbandconnection. Merely by way of example, some embodiments can track theamount of bandwidth (capacity) assigned to each class of service on acustomer's broadband connection, and/or the bandwidth provided to eachof the devices on the customer's premises network. These values can beused as inputs to a state machine that governs the use of the broadbandconnection. Additionally and/or alternatively, such embodiments canallow the customer to adjust these configuration parameters, forexample, to change traffic prioritization schemes on anapplication-by-application basis, a protocol-by-protocol basis, adevice-by-device basis, and/or the like. In this manner a customer couldprovide voice applications such as Vonage™ higher priorities andseparate capacity resource pools as a lower priority application such asNetflix™.

One such example could consist of a “connectivity state machine” programon a residential gateway that tracks the link, provisioned servicecapacity, individual class of service capacities, and the utilizationthereof to provide the use and capacity information feedback to thesystem, applications and users. It is assumed that user control iscoupled to the connectivity state machines via the state machinestracking the shared IP pools of bandwidth in separate classes ofservice, and or links supporting those classes of service. To this endwhen a customer has the ability to change link, or class of servicecapacities, or the class of service used by an application the relevant“shared pool” capacity and utilization framework provides the connectionstate information back to the system, application and customer.

Similarly, some embodiments might track the utilized throughput in eachclass of service (or overall) through the broadband connection and/or toeach customer device. Alternatively and/or additionally, someembodiments might track the utilized state at a residential gatewayand/or various points in the access network and serve as a signalingpoint (referred to herein as a “customer service point”) for customerapplications (or customers themselves) to determine the line state oftheir connection and/or devices. In some cases, for example, anembodiment might provide an API (or specialized real time protocol suchas Diameter) for applications to access the signaling point. In othercases, an embodiment might employ a user interface to allow the customerhimself or herself to view the line state in real-time or nearreal-time. As used herein, the term “line state” connotes any or all ofa variety of types of information about the customer's broadbandconnection; such information can include, without limitation, theallocated capacity (e.g., in bits/second) of the connection generallyand/or of any subsets of the connection, such as capacity allocated to aparticular application, class of service, protocol, service, or deviceon the customer's network; the utilized throughput at any given point intime, either for the broadband connection generally, or specifically forany particular application, class of service, protocol, service, ordevice on the customer's network; the classes of service implementedover the broadband connection, including which services, protocols,applications, or devices are assigned to each class of service; networklatency, e.g., between the access network and the customer service pointor any device on the customer's network, between the customer servicepoint (or a device on the customer network) and the provider's Internetdrain and/or a host the customer is trying to reach; packet lossconditions, and/or the like.

Merely by way of example, a customer service point might trackthroughput at either end of the access network, and/or at theresidential gateway and one or more customer devices. In some cases,signaling point might provide alarms to the customer (or the provider)in the event of packet loss conditions or near-congestion conditions.Such alarms can be communicated through the user interface provided bythe customer service point and/or can be communicated by otherappropriate techniques, such as email, text messages, and/or the like.In another set of embodiments, a customer service point can provide busyindicators, which can serve as a “busy signal” for the customer and/orany applications, to let the application/customer know whether there issufficient bandwidth available to start another network session.

Customer applications might be configured to communicate with thesignaling point to obtain network performance and/or utilizationinformation. This functionality can enable near-real-time utilizationand/performance reporting, along with visual feedback, on networkconditions (including packet loss conditions) with respect to thecustomer's broadband connection and/or premises network, either overallor for particular classes of service. As another example, a customerapplication might be configured to receive a busy indicator from thecustomer service point and provide feedback to the customer indicatingthat the application is unable to begin the requested session due tocurrent network conditions. For example, if two users are watching videoon demand over the broadband connection using two different computers, athird user attempting to watch video on demand might be informed by thevideo player that the broadband connection currently has insufficientavailable capacity to allow another video on demand stream, instead ofmerely trying to play the stream with unacceptable performance.

FIG. 1 illustrates a system 100 that can provide these, and other,user-based monitoring and control features. The system 100 includes acustomer service point 105. In some cases, as illustrated by FIG. 1, acustomer service 105 point can be implemented by a residential gateway110. In particular embodiments, as noted above, a customer service point105 can implement a connectivity state machine.

A residential gateway 110 can be any device that provides connectivitybetween a subscriber and a provider's network. Such devices can include,without limitation, network interface devices (“NID”), broadband modems,voiceband modems, cellular modems, wireless modems and access points,routers, other interfaces between the customer's premises network andthe access network, and/or the like. Typically, the residential gatewaywill be located at the customer's premises, but this is not required inall embodiments. The residential gateway 110 provides connectivitybetween a customer network 115 and an access network 120 operated by anInternet service provider (“ISP”), such as a broadband provider. Theaccess network 120 provides, inter alia, connectivity between thecustomer's network 110 and the Internet 125, as is known in the art. Ina typical implementation, the residential gateway 110 will have a firstcommunication interface (e.g., a broadband interface or an uplinkinterface) that communicates with the access network 120 using whateverbroadband technology is employed (e.g., xDSL, DOCSIS, wirelessbroadband, etc.) and a second (local) communication interface that thatprovides connectivity with one or more customer devices (e.g., anEthernet port, 802.11x radio, etc.). In some embodiments, theresidential gateway 110 might include router functionality, such thatthe local communication interface might provide for communication with aplurality of devices in the customer network 115 via either wired orwireless connection. In other embodiments, the residential gateway 110might provide a single local interface, and/or local routerfunctionality might be implemented by a separate device. The nature ofthe customer's network 115 topology are not material to the scope ofvarious embodiments.

In other cases, a customer service point 105 might be located at adevice (not shown on FIG. 1) in the access network 120 itself and/or itmight be configured to communicate with the customer's residentialgateway 110 or network interface device, and/or any customer devices 130on the customer premises network. The customer service point 105, indifferent embodiments, can be located at any location (or integratedwith any device) that provides the customer service point 105 withvisibility into the configuration and/or performance of the network, asdescribed herein, and/or allows for configuration of network parameters,as described herein. Thus, in some cases, the customer service point 105can be in a device separate from the residential gateway 110 and/oraccess network 120, so long as it can communicate with appropriatedevices in the access network 120 and/or the residential gateway 110 toprovide the monitoring and control services described herein.

The customer devices 130 can include any devices that are capable ofnetwork communications (and, in particular aspects, IP communications).Such devices 130 can include, without limitation a laptop 130 a withwireless networking (e.g., IEEE 802.11x) capabilities, a mobile device130 b (e.g., a mobile phone, tablet computer, personal digitalassistant, etc.) with wireless networking capability, a television settop box 130 c, a networked personal computer 130 d and/or laptop 130 e,and the like. In some aspects, some (or all) of the customer devices 130are programmed with applications 135 that access the Internet 125 (e.g.,through the residential gateway 110 and/or the access network 120. Suchapplications can include, without limitation, web browsers 140, video ondemand applications (such as Netflix™, to name one example), VoIPapplications, online games, chat applications (including text chat,voice chat, and/or video chat applications), and any other type ofapplication that requires, or can benefit from, a connection with theInternet. In some cases, as mentioned above, one or more of theseapplications might be configured to access the customer service point atthe residential gateway 105 (or elsewhere), e.g., using an API, asdescribed in further detail below.

While a web browser 140 can be considered, in one aspect, to be one ofthe applications 135 that use the Internet, the web browser 140 can alsoindependently be used to provide a user interface to the customerservice point 105 at the residential gateway 110 (or elsewhere), asdescribed in further detail below. Thus, the customer service point 105might be programmed with, e.g., a web server, in order to serve webpages to be displayed in a browser 140 of one or more of the devices 130for providing the user interaction described further herein. (Of course,in some embodiments, one or more of the devices 130 might be programmedwith a dedicated application that interfaces with the customer servicepoint 105 to provide similar interaction.)

The system 100 might further comprise one or more monitoring points 145.A monitoring point 145 can be any device that is capable of measuringany metric that can be used as a network performance statistic, or thatcan be used to calculate or derive a network performance statistic.Merely by way of example, in some cases, a monitoring point 145 mightmeasure throughput of network traffic (e.g., IP packets) associated with(e.g., originating from and/or directed to) a particular residentialgateway 110 (and/or any subset of that traffic, such as trafficassociated with a particular device 130 on the customer network 115,traffic within a particular class of service, traffic associated with aparticular application 135, and/or the like). Such traffic might beupstream traffic (i.e., traffic originating from the customer network115 or a device 130 therein), downstream traffic (i.e., trafficaddressed to the customer network 115 or a device 130 therein), or both.In other cases, a monitoring point 145 might measure other values, suchas utilized capacity associated with a particular customer, networklatency for a particular customer's traffic (e.g., traffic associatedwith that customer's residential gateway 110 and/or network 115) and/orsubset of that traffic, and/or the like.

In some cases, a monitoring point 145 might be a dedicated devicespecifically configured to monitor network traffic. Such monitoring caninclude, for example, deep packet inspection (“DPI”) and/or variousother techniques to identify traffic, associate such traffic with aparticular customer (or customer service point 105) and/or measurenetwork metrics to compile network performance statistics. Alternativelyand/or additionally, a monitoring point 145 might be implemented asanother device in the network, such as traffic conditioning function,virtual interface, and or other probe function located in a NID, aswitch, router, and/or the like, with additional functionality asdescribed herein to perform the functions of a monitoring point 145.

In accordance with various embodiments, the system 100 might include oneor more monitoring points 145 at various locations in the network. Thelocations of the monitoring point(s) 145 can be chosen so as to maximizevisibility into network performance, and in some cases, the relativevalues of a particular metric measured at different measuring points 145can provide insight into any performance issues. For example, in somecases, the residential gateway 110 and/or customer service point 105itself can serve as a monitoring point 145 a. The system 100 illustratedby FIG. 1 also includes a monitoring point 145 b at the customer end ofthe access network 120 (which might, for instance, be an edge router incommunication with a DSLAM (not illustrated) that provides connectivityfor the residential gateway 110) and a monitoring point 145 c within theaccess network 120 itself, for example at a core router within theaccess network 120. In the illustrated embodiment, the system 100 alsoincludes a monitoring point 145 d adjacent the Internet drain of theaccess network 120 (i.e., the point at which the access network 120interfaces with the Internet 125), which might be, for example, an edgerouter at the ISP's point of presence. The Internet drain itself mightbe a monitoring point. It should be appreciated, of course, that theillustrated locations are exemplary in nature, and any number ofmonitoring points 145 can be employed throughout the customer network115, the access network 120 or the Internet 125.

The functionality of the system 100 is described in further detailbelow, but as a general matter, the customer service point 105 isconfigured to obtain network performance metrics from the monitoringpoints 145 using any of a variety of techniques and/or communicationprotocols. Merely by way of example, in some cases, the customer servicepoint 105 might poll one or more monitoring points 145 for informationperiodically or upon user request. In other cases, one or more of themonitoring points 145 might be configured to transmit such informationto the customer service point 105 on their own initiative.

The customer service point 105 then can process the information asnecessary to derive network performance statistics and/or format suchinformation, and then provide the network performance statistics to theuser, as described in further detail below. The customer service point105 can also receive and implement any network control instructions fromthe user, such as assignment of applications to classes of service,and/or the like. In some cases, the customer service point 105 willcommunicate with one or more devices in the access network 120 (whichmight be, but need not necessarily be monitoring points 145), such asthe residential gateway 110, a DSLAM, various routers, and/or the like,to implement the control instructions received from the user. In othercases, such as when the customer service point 105 is incorporated bythe residential gateway 110, the customer service point 105 canimplement the control instructions without communicating with any otherdevices.

FIG. 2 illustrates a method 200 of providing user monitoring and controlof a broadband connection, in accordance with a set of embodiments. Itshould be noted that, while the techniques and procedures of the method200 are depicted and/or described in a certain order for purposes ofillustration, it should be appreciated that certain procedures may bereordered and/or omitted within the scope of various embodiments, and/orthat operations can be added or substituted into the method 200 withinthe scope of various embodiments. Moreover, while (as noted above), theoperations illustrated by FIG. 2 can be implemented by (and, in somecases, are described below with respect to) the system 100 of FIG. 1 (orcomponents thereof, such as the customer service point 105), theseoperations can also be implemented using any suitable hardwareimplementation. Similarly, while the system 100 of FIG. 1 (and/orcomponents thereof) can operate according to the method 200 illustratedby FIG. 2 (e.g., by executing instructions embodied on a computerreadable medium), the system 100 can also operate according to othermodes of operation and/or perform other suitable procedures.

At block 205, the method 200 comprises providing a customer servicepoint. Providing a customer service point can involve one or more of avariety of operations. Merely by way of example, in some cases,providing a customer service point might comprise providing the customerwith a residential gateway that functions as a customer service point.In other cases, providing a customer service point can compriseoperating a customer service point in the access network, or providingcommunication between the access network and a residential gateway (orother device) to allow the residential gateway (or other device) to actas a customer service point (or an interface thereto).

The method 200 further comprises communicating with the Internet (block210) and communicating with one or more customer devices (block 215).Merely by way of example, in a particular set of embodiments, aresidential gateway (which might incorporate a customer service point)might communicate with both the Internet (e.g., via the ISP accessnetwork) and a customer device, to provide connectivity between thecustomer device and the Internet, thereby serving as the interfacebetween the customer and the customer's broadband connection. In anaspect, the residential gateway might have a first communicationinterface (e.g., an uplink port) that communicates with the Internet anda second communication interface (e.g., a wireless radio, one or moredownlink ports, etc.) that communicate with a customer network, and/orone or more customer devices. The residential gateway, then, cantransmit on one interface the information (e.g., IP packets) received onthe other interface. In one aspect, as the information passes throughthe residential gateway, the residential gateway, acting as the customerservice point, can perform any monitoring and/or impose any transmissioncontrol, required by the customer service point configuration. (Itshould be noted, of course, that such monitoring and control can also beperformed at other devices, such as a DSLAM and/or a router in theaccess network.)

At block 220, the method comprises maintaining a class of service state.In a particular embodiment, the customer service point maintains thisclass of service state. Merely by way of example, as noted above, thecustomer service point can operate as a state machine that tracks and/orcontrols the line state of the customer's broadband connection. Forinstance, the customer service point might maintain information aboutvarious classes of service implemented by the customer for traffictraveling over the broadband connection. The residential gateway, inturn, can enforce these classes of service when transmitting data overthe broadband connection.

The class of service state can include any of a variety networkconfiguration parameters and/or network performance statistics. Merelyby way of example, in some cases, the class of service state mightinclude network usage information, such as which customer devices,classes of service, and/or applications are communicating over thebroadband connection, and/or how much of the bandwidth is assigned to(i.e., allocated to), and/or used by, each of these customer devices,classes of service, and/or application. Alternatively and/oradditionally, the class of service state might include class of serviceassociations of one or more of the applications and/or customer devices(i.e., to which class of service a particular application/customerdevices is assigned).

Maintaining the class of service state can comprise a variety ofoperations. Merely by way of example, as noted above, the customerservice point can operate, in some embodiments, as a state machine,maintaining the class of service state can comprise establishing acurrent state that reflects the customer's desired class of serviceconfiguration (e.g., which applications are assigned to which classes ofservice, how bandwidth is allocated among classes of service, etc.). Inother embodiments, maintaining the class of service state might comprisestoring network configuration parameters and routing traffic to/from thebroadband connection in accordance with those configuration parameters.

At block 225, the method comprises providing a user interface. The userinterface can provide for interaction between a user (e.g., a customer,etc.) and a computer system (e.g., a customer service point). Forexample, the user interface can be used to output information for auser, e.g., by displaying the information on a display device, printinginformation with a printer, playing audio through a speaker, etc.; theuser interface can also function to receive input from a user, e.g.,using standard input devices such as mice and other pointing devices,motion capture devices, touchpads and/or touchscreens, keyboards (e.g.,numeric and/or alphabetic), microphones, etc.

The procedures undertaken to provide a user interface, therefore, canvary depending on the nature of the implementation; in some cases,providing a user interface can comprise displaying the user interface ona display device controlled by the customer service point; in othercases, however, in which the user interface is displayed on a deviceremote from the customer service point (such as on a client computer,wireless device, etc.), providing the user interface might compriseformatting data for transmission to such a device and/or transmitting,receiving and/or interpreting data that is used to create the userinterface on the remote device. Alternatively and/or additionally, theuser interface on a client computer (or any other appropriate customerdevice) might be a web interface, in which the user interface isprovided through one or more web pages that are served from the customerservice point (and/or a web server in communication with the computersystem), and are received and displayed by a web browser on the clientcomputer (or other capable customer device). The web pages can displayoutput from the customer service point and receive input from the user(e.g., by using Web-based forms, via hyperlinks, electronic buttons,etc.). A variety of techniques can be used to create these Web pagesand/or display/receive information, such as JavaScript, Javaapplications or applets, dynamic HTML and/or AJAX technologies, to namebut a few examples.

In many cases, providing a user interface will comprise providing one ormore display screens (an example of which is described below), each ofwhich includes one or more user interface elements. As used herein, theterm “user interface element” (also described as a “visual object,”“user interface mechanism,” or “user interface device”) means any text,image, or device that can be displayed on a display screen for providinginformation to a user and/or for receiving user input. Some suchelements are commonly referred to as “widgets,” and can include, withoutlimitation, icons, images, text, text boxes, text fields, tables and/orgrids, menus, toolbars, charts, hyperlinks, buttons, lists, combo boxes,checkboxes, radio buttons, and/or the like. While any illustratedexemplary display screens might employ specific user interface elementsappropriate for the type of information to be conveyed/received bycomputer system in accordance with the described embodiments, it shouldbe appreciated that the choice of user interface elements for aparticular purpose is typically implementation-dependent and/ordiscretionary. Hence, the illustrated user interface elements employedby any display screens described herein should be considered exemplaryin nature, and the reader should appreciate that other user interfaceelements could be substituted within the scope of various embodiments.

As noted above, in an aspect of certain embodiments, the user interfaceprovides interaction between a user and a computer system, such as thecustomer service point. Hence, when this document describes proceduresfor displaying (or otherwise providing) information to a user, or toreceiving input from a user, the user interface may be the vehicle forthe exchange of such input/output. Merely by way of example, in a set ofembodiments, the user interface allows the user (e.g., the customer) toprovide configuration or review network performance statistics.

Thus, for instance, at block 230, the method comprises receiving (e.g.,at the customer service point) configuration information (e.g., at acustomer service point). The configuration information can comprise anytype of information or instructions that indicate to the customerservice point how the broadband connection should be configured. Merelyby way of example, in some cases, configuration information mightinclude instructions from the customer to assign a particularapplication to a particular class of service, to assign a particulardevice or service to a particular class of service, and/or the like. Inother cases, the configuration information might establish differentclasses of service themselves, and/or allocate the available bandwidthof the broadband connection across one or more classes of service (e.g.,by specifying that a first class of service should be allocated a firstportion of the bandwidth, that a second class of service should beallocated a second portion of the bandwidth, that a third class ofservice should be allocated the remaining bandwidth, etc.). Suchconfiguration information can apply to any number of classes of serviceand/or can allocate the available bandwidth in any manner desired by thecustomer (subject, perhaps, to constraints or recommendations providedby the ISP to avoid configurations that result in poor networkperformance).

In an aspect, the configuration information might be received via a userinterface, and in particular, via a GUI. FIG. 3 illustrates an exemplaryscreen display 300 that can be provided as part of a user interface to acustomer service point. The exemplary screen display includes aconfiguration panel 305 that includes user interface elements to receiveuser input that provides configuration information for the customerservice point. Although variety of different types of user interfacescreens are possible within the scope of various embodiments, theembodiment illustrated by FIG. 3 allows the user to assign applicationsto various classes of service. (Other panels might be configured toreceive other types of configuration information, including, for exampleallocation of overall bandwidth among classes of service or devices,assignment of devices to classes of service, and/or any other applicabletypes of network configuration, including without limitationconfiguration of the network characteristics and parameters describedherein).

As illustrated, the configuration panel includes a plurality of visualobjects 315, each of which corresponds to particular type of networktraffic (in this case, traffic associated with different applications onone or more of the customer devices, although other categorizations ofthe traffic are possible as well, such as by protocol, device, service,etc.). Merely by way of example, one visual object 315 a represents aVoIP application, and other visual object 315 b represents a streamingvideo application, and a third visual object 315 c represents an onlinegame. These three applications are assigned to a high-priority class ofservice, which is indicated by an individual object 320. Another set ofapplications, including web browsers represented by visual objects 315 dand 315 e, has been assigned to a medium priority class of servicerepresented by visual object 325, while an e-mail applicationrepresented by visual object 315 f and an online chat applicationrepresented by visual object 315 g have been assigned to a low priorityclass of service represented by visual object 330. Thus, theconfiguration panel 305 serves as a graphical representation of theclass of service state maintained by the customer service point.

It is worth noting that the configuration panel 305 can serve twopurposes. First, the configuration panel can illustrate the currentclass of service state (and/or various aspects thereof) for the user.Thus, as depicted by FIG. 3, the current class of service state isillustrated by the configuration panel 305. Additionally and/oralternatively, the configuration panel can provide an interface for theuser to modify the class of service date (enter race aspects thereof)e.g., by providing configuration information to the customer servicepoint. For example, in the illustrated embodiment, the customer canmanipulate one of the visual objects 315 corresponding to an applicationinto one of the visual objects (e.g., 320) representing a class ofservice. Merely by way of example, if the user wanted to move the Worldof Warcraft™ application traffic to the medium priority class ofservice, the user could select and drag the appropriate icon 315 c intothe box 325 representing the medium priority class of service. Othertypes of manipulations are possible as well.

Referring again to FIG. 2, in some cases, the configuration informationmight comprise a request that the customer service point receives from acustomer application (block 235), e.g., via an API. As used herein, theterm “API” connotes any type of programmatic interface provided by thecustomer service point to allow interaction with customer applications,for example, by exposing methods that can be called by such applicationsto interact with the customer service point in the manner describedherein. Examples of such interfaces can include XML interfaces, Cinterfaces, Java interfaces, and/or the like.

As noted above, customer applications (such as online video players,VoIP applications, etc.) might be configured to request an allocation ofbandwidth, either for a particular session, as a general matter, etc.Merely by way of example, if a user attempts to play a streaming videowith a video player, the video player might be configured to request anallocation of sufficient bandwidth to allow for acceptable playback ofthe video (this value, obviously, can vary according to the lengthand/or bitrate of the video, etc.). One skilled in the art canappreciate, based on the disclosure herein, that a variety ofapplication might request either temporary or persistent modificationsto a class of service state for a variety of reasons. For example, aVoIP application might request a persistent class of service priorityupon installation on a customer device or in the network (if theapplication runs on a dedicated VoIP phone, for example), while a gamemight request a temporary upgrade while the game is being played. Suchtemporary modifications might be reverted by the customer service pointafter a particular period of time, after a period of inactivity by therequesting application, or by a request from the application (e.g., uponbeing closed by the user) to revert the class of service state to aprevious state.

At block 240, the method comprises modifying the class of service statein response to the configuration information. In many cases, themodifications the class of service state will depend on theconfiguration instructions received by the customer service point.Merely by way of example, if an application requests a certain elevationof dedicated bandwidth, the class of service state might be modified toadd that application to a particular class of service (in order toprovide the dedicated bandwidth requested), establish a new class ofservice for that application and/or prioritize the application's currentclass of service in order to provide the requested bandwidth. As anotherexample, if a user provides configuration information via a userinterface (as described above, for example), the class of service statecan be modified to effectuate the configuration information; if, forexample, the user provided instructions to assign a particularapplication or device to a particular class of service, the customerservice point can transition to a new class of service state thatassigns that application or device to that class of service.

From that point forward, when providing communication between thecustomer device/network in the access network, the residential gatewaywill employ the rules established by the new class of service state inprioritizing traffic, etc. The customer service point might communicatewith other devices (e.g., the residential gateway, a DSLAM, routerswithin the access network, etc.) to effectuate the modifications made tothe class of service state.

On the other hand, if the customer service point cannot satisfy arequest (from a user, an application, etc.), the method 200 mightcomprise providing a busy indicator (block 245). A variety of differenttypes of busy indicators can be used, and the type of busy indicator candepend on the nature of the request itself. Merely by way of example, ifthe request was received from an application via an API, the busyindicator might be provided to the application via the same API. Thenature and format of the busy indicator conveyed by the customer servicepoint is not material to the scope of this disclosure, so long as thebusy indicator is sufficient to indicate to the application that itsrequest cannot be accommodated. Based on the busy indicator, theapplication might inform the user that the requested network action(e.g., continuing from the example above, playing a streaming videofile) cannot be performed, optionally with an explanation of the networkconditions that prevented the operation. Such an explanation (and/orinformation from which such explanation can be generated) might beprovided by the customer service point as part of the busy indicator.Merely by way of example, the customer service point might provide, aspart of the busy indicator, information indicating that two otherdevices already have streaming video sessions open through theresidential gateway, and that a third session is not possible due tobandwidth limitations of the broadband connection. The busy indicatormight also provide information about computing applications or devices,such as an identification of the two devices that currently havestreaming video sessions open.

On the other hand, if the request is received from a user via a userinterface, the busy indicator might be provided through the same userinterface. In this case, the busy indicator might comprise the same ordifferent information as the information that would be provided via theAPI to an application, although if the same information is provided, thecustomer service point but format the information for consumption by theuser, rather than by an application.

At block 250, the method comprises determining one or more networkperformance statistics. For example, a customer service point mightreceive network performance statistics (or information from whichnetwork performance statistics can be derived) from one or more networkpoints (block 255), which can be any point in network, including withoutlimitation monitoring points as described above. Such monitoring points,as noted above, can be any network devices within the customer network,the access network, and/or the Internet itself (and/or device located atany interface between these networks). As noted above, the monitoringpoints can monitor a variety of parameters and can send that informationto the customer service point, which can then derive network performancestatistics (including without limitation those described above, such asnetwork latency, utilization, throughput, capacity, and/or packet loss)based on the measurements from one or more of the monitoring devices. Insome cases, the customer service point itself (and/or a residentialgateway, which might incorporate the customer service point) can serveas a monitoring point. Thus, determining network performance statisticscan include a variety of operations, including without limitationcompiling network performance statistics provided by monitoring devices,calculating network performance statistics from measurements collectedby the customer service point itself and/or received from the monitoringdevices, and/or the like.

At block 260, the method 200 comprises providing the determined networkperformance statistics to the customer. These statistics can be providedin a variety of different ways. Merely by way of example, in some casesthe network performance statistics may be provided to an application viaan API, and the application can use the statistics according to itsconfiguration (e.g., by displaying them to the user, compiling a report,and/or the like). In other cases, the customer service point mightprovide the statistics to the customer via a user interface.

For instance, returning to FIG. 3, the exemplary display screen 300might include a statistics panel 310, which can be used to provide thenetwork performance statistics to the user. The statistics can beprovided in a variety of different forms, including without limitation,as chronological statistics displayed over a period of time (which mightbe a rolling period), as a static snapshot of statistics at a givenpoint in time, and/or the like. Similarly, the user-interface elementsused to display the statistics can vary according to the embodimentand/or according to the customer's preferences. For example, while theexemplary screen display 300 illustrates a plot 335 showing throughputon the broadband connection over a period of time, and a plot 340showing network latency between the residential gateway and the Internetdrain over the same period of time, the same or other information couldbe displayed as a table of numeric statistics, colored icons presentinga qualitative indication of network performance (e.g., a green circlefor good performance, and yellow triangle for moderate performance, anda red octagon for poor performance, etc.), and/or using any otherdisplay scheme that can effectively convey information about the networkperformance.

In some cases, the customer service point is configured to generate analarm (block 265). Alarms can be generated for a wide variety of networkconditions, and in some embodiments, the customer can configure customerservice point to specify which network conditions should generate analert. Merely by way of example, in some cases, an alarm might begenerated upon network utilization of the broadband connection exceedinga certain threshold portion of the overall bandwidth. In other cases, analarm might be generated if insufficient bandwidth is available (eitheroverall or in a particular class of service) to allow an application toopen a desired session. In a particular embodiment, the customer servicepoint might generate an alarm in the event of a packet loss condition,either between the residential gateway in this access network in theaccess network itself, between the access network and the Internetdrain, and/or the like.

Alarms can be provided to the customer and/or other entities in avariety of ways. Merely by way of example, an alarm can be displayed fora customer in the user interface, such as on the exemplary screendisplay 300 described with respect to FIG. 3, above. In other cases,alarms can be provided using a standard framework such as a simplenetwork management protocol (“SNMP”) trap. Alarms can also be providedto the customer (and/or to others such as network administrators at theISP) using a variety of communication technologies, such as e-mail, textmessage, and/or the like. In some embodiments, alarms can be provided toapplications (e.g., via an API, as described above), and theapplications can process the alarm, notify users, and/or take any otherappropriate action according to the configuration of application.

FIG. 4 provides a schematic illustration of one embodiment of a computersystem 400 that can perform the methods provided by various otherembodiments, as described herein, and/or can function as a customerservice point, residential gateway, monitoring device, customer device,and/or the like. It should be noted that FIG. 4 is meant only to providea generalized illustration of various components, of which one or more(or none) of each may be utilized as appropriate. FIG. 4, therefore,broadly illustrates how individual system elements may be implemented ina relatively separated or relatively more integrated manner.

The computer system 400 is shown comprising hardware elements that canbe electrically coupled via a bus 405 (or may otherwise be incommunication, as appropriate). The hardware elements may include one ormore processors 410, including without limitation one or moregeneral-purpose processors and/or one or more special-purpose processors(such as digital signal processing chips, graphics accelerationprocessors, and/or the like); one or more input devices 415, which caninclude without limitation a mouse, a keyboard and/or the like; and oneor more output devices 420, which can include without limitation adisplay device, a printer and/or the like.

The computer system 400 may further include (and/or be in communicationwith) one or more storage devices 425, which can comprise, withoutlimitation, local and/or network accessible storage, and/or can include,without limitation, a disk drive, a drive array, an optical storagedevice, solid-state storage device such as a random access memory(“RAM”) and/or a read-only memory (“ROM”), which can be programmable,flash-updateable and/or the like. Such storage devices may be configuredto implement any appropriate data stores, including without limitation,various file systems, database structures, and/or the like.

The computer system 400 might also include a communications subsystem430, which can include without limitation a modem, a network card(wireless or wired), an infra-red communication device, a wirelesscommunication device and/or chipset (such as a Bluetooth™ device, an802.11 device, a WiFi device, a WiMax device, a WWAN device, cellularcommunication facilities, etc.), and/or the like. The communicationssubsystem 430 may permit data to be exchanged with a network (such asthe network described below, to name one example), with other computersystems, and/or with any other devices described herein. In manyembodiments, the computer system 400 will further comprise a workingmemory 435, which can include a RAM or ROM device, as described above.

The computer system 400 also may comprise software elements, shown asbeing currently located within the working memory 435, including anoperating system 440, device drivers, executable libraries, and/or othercode, such as one or more application programs 445, which may comprisecomputer programs provided by various embodiments, and/or may bedesigned to implement methods, and/or configure systems, provided byother embodiments, as described herein. Merely by way of example, one ormore procedures described with respect to the method(s) discussed abovemight be implemented as code and/or instructions executable by acomputer (and/or a processor within a computer); in an aspect, then,such code and/or instructions can be used to configure and/or adapt ageneral purpose computer (or other device) to perform one or moreoperations in accordance with the described methods.

A set of these instructions and/or code might be encoded and/or storedon a non-transitory computer readable storage medium, such as thestorage device(s) 425 described above. In some cases, the storage mediummight be incorporated within a computer system, such as the system 400.In other embodiments, the storage medium might be separate from acomputer system (i.e., a removable medium, such as a compact disc,etc.), and/or provided in an installation package, such that the storagemedium can be used to program, configure and/or adapt a general purposecomputer with the instructions/code stored thereon. These instructionsmight take the form of executable code, which is executable by thecomputer system 400 and/or might take the form of source and/orinstallable code, which, upon compilation and/or installation on thecomputer system 400 (e.g., using any of a variety of generally availablecompilers, installation programs, compression/decompression utilities,etc.) then takes the form of executable code.

It will be apparent to those skilled in the art that substantialvariations may be made in accordance with specific requirements. Forexample, customized hardware (such as programmable logic controllers,field-programmable gate arrays, application-specific integratedcircuits, and/or the like) might also be used, and/or particularelements might be implemented in hardware, software (including portablesoftware, such as applets, etc.), or both. Further, connection to othercomputing devices such as network input/output devices may be employed.

As mentioned above, in one aspect, some embodiments may employ acomputer system (such as the computer system 400) to perform methods inaccordance with various embodiments of the invention. According to a setof embodiments, some or all of the procedures of such methods areperformed by the computer system 400 in response to processor 410executing one or more sequences of one or more instructions (which mightbe incorporated into the operating system 440 and/or other code, such asan application program 445) contained in the working memory 435. Suchinstructions may be read into the working memory 435 from anothercomputer readable medium, such as one or more of the storage device(s)425. Merely by way of example, execution of the sequences ofinstructions contained in the working memory 435 might cause theprocessor(s) 410 to perform one or more procedures of the methodsdescribed herein.

The terms “machine readable medium” and “computer readable medium,” asused herein, refer to any medium that participates in providing datathat causes a machine to operation in a specific fashion. In anembodiment implemented using the computer system 400, various computerreadable media might be involved in providing instructions/code toprocessor(s) 410 for execution and/or might be used to store and/orcarry such instructions/code (e.g., as signals). In manyimplementations, a computer readable medium is a non-transitory,physical and/or tangible storage medium. Such a medium may take manyforms, including but not limited to, non-volatile media, volatile media,and transmission media. Non-volatile media includes, for example,optical and/or magnetic disks, such as the storage device(s) 425.Volatile media includes, without limitation, dynamic memory, such as theworking memory 435. Transmission media includes, without limitation,coaxial cables, copper wire and fiber optics, including the wires thatcomprise the bus 405, as well as the various components of thecommunication subsystem 430 (and/or the media by which thecommunications subsystem 430 provides communication with other devices).Hence, transmission media can also take the form of waves (includingwithout limitation radio, acoustic and/or light waves, such as thosegenerated during radio-wave and infra-red data communications).

Common forms of physical and/or tangible computer readable mediainclude, for example, a floppy disk, a flexible disk, a hard disk,magnetic tape, or any other magnetic medium, a CD-ROM, any other opticalmedium, punch cards, paper tape, any other physical medium with patternsof holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, any other memory chipor cartridge, a carrier wave as described hereinafter, or any othermedium from which a computer can read instructions and/or code.

Various forms of computer readable media may be involved in carrying oneor more sequences of one or more instructions to the processor(s) 410for execution. Merely by way of example, the instructions may initiallybe carried on a magnetic disk and/or optical disc of a remote computer.A remote computer might load the instructions into its dynamic memoryand send the instructions as signals over a transmission medium to bereceived and/or executed by the computer system 400. These signals,which might be in the form of electromagnetic signals, acoustic signals,optical signals and/or the like, are all examples of carrier waves onwhich instructions can be encoded, in accordance with variousembodiments of the invention.

The communications subsystem 430 (and/or components thereof) generallywill receive the signals, and the bus 405 then might carry the signals(and/or the data, instructions, etc. carried by the signals) to theworking memory 435, from which the processor(s) 405 retrieves andexecutes the instructions. The instructions received by the workingmemory 435 may optionally be stored on a storage device 425 eitherbefore or after execution by the processor(s) 410.

While certain features and aspects have been described with respect toexemplary embodiments, one skilled in the art will recognize thatnumerous modifications are possible. For example, the methods andprocesses described herein may be implemented using hardware components,software components, and/or any combination thereof. Further, whilevarious methods and processes described herein may be described withrespect to particular structural and/or functional components for easeof description, methods provided by various embodiments are not limitedto any particular structural and/or functional architecture but insteadcan be implemented on any suitable hardware, firmware and/or softwareconfiguration. Similarly, while certain functionality is ascribed tocertain system components, unless the context dictates otherwise, thisfunctionality can be distributed among various other system componentsin accordance with the several embodiments.

Moreover, while the procedures of the methods and processes describedherein are described in a particular order for ease of description,unless the context dictates otherwise, various procedures may bereordered, added, and/or omitted in accordance with various embodiments.Moreover, the procedures described with respect to one method or processmay be incorporated within other described methods or processes;likewise, system components described according to a particularstructural architecture and/or with respect to one system may beorganized in alternative structural architectures and/or incorporatedwithin other described systems. Hence, while various embodiments aredescribed with—or without—certain features for ease of description andto illustrate exemplary aspects of those embodiments, the variouscomponents and/or features described herein with respect to a particularembodiment can be substituted, added and/or subtracted from among otherdescribed embodiments, unless the context dictates otherwise.Consequently, although several exemplary embodiments are describedabove, it will be appreciated that the invention is intended to coverall modifications and equivalents within the scope of the followingclaims.

1. A customer service point in communication with an Internet serviceprovider access network and a customer device the customer service pointcomprising: a first communication interface; a second communicationinterface; one or more processors in communication with the first andsecond communication interfaces; and a computer readable medium incommunication with the one or more processors, the computer readablemedium having encoded thereon a set of instructions executable by thecomputer system to perform one or more operations, the set ofinstructions comprising: instructions for communicating with theInternet via the first communication interface; instructions forcommunicating with the customer device via the second communicationinterface; instructions for maintaining a class of service state for aconnection between the customer device and the Internet; instructionsfor receiving, from the customer, configuration information forconfiguring the class of service state; instructions for modifying theclass of service state in response to receiving the configurationinformation; instructions for determining one or more networkperformance statistics pertaining to network performance between thecustomer device and at least one other network point; and instructionsfor providing, to the customer, the one or more network performancestatistics.
 2. The customer service point of claim 1, wherein thecustomer service point is implemented within a residential gatewaylocated at a subscriber premises.
 3. The customer service point of claim1, wherein the class of service state comprises network utilizationinformation.
 4. The customer service point of claim 1, wherein the classof service state comprises network capacity information.
 5. The customerservice point of claim 1, wherein the class of service state comprisesclass of service associations with one or more customer applications. 6.The customer service point of claim 1, wherein the class of servicestate comprises an amount of bandwidth assigned to each of a pluralityof classes of service.
 7. The customer service point of claim 1, whereinthe customer service point is incorporated within a device located inthe access network.
 8. The customer service point of claim 1, whereinthe at least one other network point comprises an Internet drain betweenthe access network and the Internet.
 9. The customer service point ofclaim 1, wherein the at least one other network point comprises a devicewithin the access network.
 10. The customer service point of claim 9,wherein the device within the access network is an edge router.
 11. Thecustomer service point of claim 10, wherein the edge router is adjacentan Internet drain.
 12. The customer service point of claim 1, whereinthe set of instructions further comprises instructions for providing agraphical user interface for interaction with the customer.
 13. Thecustomer service point of claim 12, wherein the instructions forproviding a graphical user interface comprise instructions for providingthe graphical user interface via a web page served by the customerservice point.
 14. The customer service point of claim 12, wherein theinstructions for receiving configuration information for configuring theclass of service state comprise instructions for receiving theconfiguration information via the graphical user interface.
 15. Thecustomer service point of claim 14, wherein the instructions forreceiving the configuration information via the graphical user interfacecomprise: instructions for displaying, with the graphical userinterface, a graphical representation of the class of service state; andinstructions for receiving, via the graphical user interface, user inputfor modifying the class of service state, wherein the user inputcomprises manipulation of one or more graphical objects corresponding tothe class of service state.
 16. The customer service point of claim 15,wherein the graphical representation of the class of service statecomprises a first plurality of graphical objects representing classes ofservice and a second plurality of graphical objects representing typesof network traffic, and wherein the user input comprises dragging one ofthe second plurality of graphical objects into one of the firstplurality of graphical objects.
 17. The customer service point of claim12, wherein the instructions for providing the one or more networkperformance statistics comprise instructions for displaying the one ormore network performance statistics with the graphical user interface.18. The customer service point of claim 1, wherein at least one of thecommunication interfaces is a wireless communication interface.
 19. Thecustomer service point of claim 1, wherein the instructions forreceiving configuration information comprise instructions for receiving,from an application on the client device or on a computer incommunication with the client device, a request for service priority.20. The customer service point of claim 1, wherein the set ofinstructions further comprises: instructions for generating an alarm inthe event of a packet loss condition.
 21. The customer service point ofclaim 1, wherein the set of instructions further comprises: instructionsfor providing, to the customer, a busy indicator if network conditionsindicate that insufficient bandwidth exists to satisfy a requestednetwork session.
 22. The customer service point of claim 1, wherein theinstructions for determining one or more network performance statisticscomprise instructions for receiving network performance information fromone or more network devices.
 23. The customer service point of claim 22,wherein the one or more network devices is a plurality of networkdevices comprising a first network device at a customer end of theaccess network and a second network device at an Internet end of theaccess network.
 24. The customer service point of claim 1, wherein theone or more network performance statistics comprise a measurement ofnetwork latency.
 25. The customer service point of claim 1, wherein theone or more network performance statistics comprise a measurement ofnetwork throughput.
 26. The customer service point of claim 25, whereinthe measurement of network throughput comprises at least one measurementselected from the group consisting of accepted bits per second andrejected bits per second.
 27. The customer service point of claim 1,wherein the one or more network performance statistics comprise ameasurement network throughput delivered to a residential gateway. 28.The customer service point of claim 1, further comprising: instructionsfor providing an application programming interface (“API”); wherein: theinstructions for receiving configuration information compriseinstructions for receiving configuration information from the customerdevice via the API; and the instructions for providing the one or morenetwork performance statistics comprise instructions for provide the oneor more network performance statistics to the customer device via theAPI.
 29. A method, comprising: maintaining, at a customer service pointcomprising a processor, a first communication interface, and a secondcommunication interface, a class of service state for a connectionbetween a customer device in communication with the first communicationinterface and the Internet in communication with the secondcommunication interface; receiving, from the customer, configurationinformation for configuring the class of service state; and modifyingthe class of service state in response to receiving the configurationinformation.
 30. An apparatus, comprising: a computer readable mediumhaving encoded thereon a set of instructions for causing a customerservice point to perform one or more operations, the customer servicepoint comprising a processor, a first communication interface, and asecond communication interface, a customer device being communicationwith the first communication interface and the Internet being incommunication with the second communication interface, the set ofinstructions being executable by the processor and comprising:instructions for determining one or more network performance statisticspertaining to network performance between the customer device and atleast one other network point; and instructions for providing, to thecustomer, the one or more network performance statistics.